package RPS;

public class RockPaperScissors {
	
	 public Result play(RPSEnum p1, RPSEnum p2) {
		 
		Result r=null;
		if (p1==RPSEnum.SCISSORS && p2==RPSEnum.SCISSORS) {
			r=Result.TIE;
		}
		if (p1==RPSEnum.ROCK && p2==RPSEnum.ROCK) {
			r=Result.TIE;
		}
		if (p1==RPSEnum.PAPER && p2==RPSEnum.PAPER) {
			r=Result.TIE;
		}
		if (p1==RPSEnum.SCISSORS && p2==RPSEnum.PAPER) {
			r=Result.WIN;
		}
		if (p1==RPSEnum.ROCK && p2==RPSEnum.SCISSORS) {
			r=Result.WIN;
		}
		if (p1==RPSEnum.PAPER && p2==RPSEnum.ROCK) {
			r=Result.WIN;
		}
		if (p1==RPSEnum.PAPER && p2==RPSEnum.SCISSORS) {
			r=Result.LOST;
		}
		if (p1==RPSEnum.SCISSORS && p2==RPSEnum.ROCK) {
			r=Result.LOST;
		}
		if (p1==RPSEnum.ROCK && p2==RPSEnum.PAPER) {
			r=Result.LOST;
		}

		return r;
	}
	 
	 public Result play(Player p1, Player p2) {
		
		 Result r=null;

		 for(int i=0; i<p1.getNumberOfMoves(); i++) {
			 r=play(p1.getNextMove(i), p2.getNextMove(i));
			 
			 if(r==Result.WIN) {
				 p1.setScore(1);
			 }
			 if(r==Result.TIE) {
				 p1.setScore(1);
				 p2.setScore(1);
			 }
			 if(r==Result.LOST) {
				 p2.setScore(1);
			 }
		 }
		 
		 if(p1.getScore()>p2.getScore()) {
			 r= Result.WIN;
		 }
		 if(p1.getScore()<p2.getScore()) {
			 r= Result.LOST;
		 }
		 if(p1.getScore()==p2.getScore()) {
			 r= Result.TIE;
		 }
		 return r;
	 }
}
